home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / Connections.p < prev    next >
Encoding:
Text File  |  1995-07-06  |  11.5 KB  |  354 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Connections.p
  3.  
  4.      Contains:    Communications Toolbox Connection Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT Connections;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __CONNECTIONS__}
  30. {$SETC __CONNECTIONS__ := 1}
  31.  
  32. {$I+}
  33. {$SETC ConnectionsIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __WINDOWS__}
  38. {$I Windows.p}
  39. {$ENDC}
  40. {    Types.p                                                        }
  41. {        ConditionalMacros.p                                        }
  42. {    Memory.p                                                    }
  43. {        MixedMode.p                                                }
  44. {    Quickdraw.p                                                    }
  45. {        QuickdrawText.p                                            }
  46. {    Events.p                                                    }
  47. {        OSUtils.p                                                }
  48. {    Controls.p                                                    }
  49. {        Menus.p                                                    }
  50.  
  51. {$IFC UNDEFINED __DIALOGS__}
  52. {$I Dialogs.p}
  53. {$ENDC}
  54. {    Errors.p                                                    }
  55. {    TextEdit.p                                                    }
  56.  
  57. {$IFC UNDEFINED __CTBUTILITIES__}
  58. {$I CTBUtilities.p}
  59. {$ENDC}
  60. {    StandardFile.p                                                }
  61. {        Files.p                                                    }
  62. {            Finder.p                                            }
  63. {    AppleTalk.p                                                    }
  64.  
  65. {$PUSH}
  66. {$ALIGN MAC68K}
  67. {$LibExport+}
  68.  
  69. CONST
  70. {    current Connection Manager version    }
  71.     curCMVersion                = 2;
  72. {    current Connection Manager Environment Record version     }
  73.     curConnEnvRecVers            = 0;
  74. { CMErr }
  75.     cmGenericError                = -1;
  76.     cmNoErr                        = 0;
  77.     cmRejected                    = 1;
  78.     cmFailed                    = 2;
  79.     cmTimeOut                    = 3;
  80.     cmNotOpen                    = 4;
  81.     cmNotClosed                    = 5;
  82.     cmNoRequestPending            = 6;
  83.     cmNotSupported                = 7;
  84.     cmNoTools                    = 8;
  85.     cmUserCancel                = 9;
  86.     cmUnknownError                = 11;
  87.  
  88.     
  89. TYPE
  90.     CMErr = OSErr;
  91.  
  92.  
  93. CONST
  94.     cmData                        = 1 * (2**(0));
  95.     cmCntl                        = 1 * (2**(1));
  96.     cmAttn                        = 1 * (2**(2));
  97.     cmDataNoTimeout                = 1 * (2**(4));
  98.     cmCntlNoTimeout                = 1 * (2**(5));
  99.     cmAttnNoTimeout                = 1 * (2**(6));
  100.     cmDataClean                    = 1 * (2**(8));
  101.     cmCntlClean                    = 1 * (2**(9));
  102.     cmAttnClean                    = 1 * (2**(10));
  103. {        Only for CMRecFlags (not CMChannel) in the rest of this enum    }
  104.     cmNoMenus                    = 1 * (2**(16));
  105.     cmQuiet                        = 1 * (2**(17));
  106.     cmConfigChanged                = 1 * (2**(18));
  107.  
  108. { CMRecFlags and CMChannel        }
  109. {        Low word of CMRecFlags is same as CMChannel    }
  110.     
  111. TYPE
  112.     CMRecFlags = LONGINT;
  113.  
  114.     CMChannel = INTEGER;
  115.  
  116.  
  117. CONST
  118.     cmStatusOpening                = 1 * (2**(0));
  119.     cmStatusOpen                = 1 * (2**(1));
  120.     cmStatusClosing                = 1 * (2**(2));
  121.     cmStatusDataAvail            = 1 * (2**(3));
  122.     cmStatusCntlAvail            = 1 * (2**(4));
  123.     cmStatusAttnAvail            = 1 * (2**(5));
  124.     cmStatusDRPend                = 1 * (2**(6));                    { data read pending    }
  125.     cmStatusDWPend                = 1 * (2**(7));                    { data write pending    }
  126.     cmStatusCRPend                = 1 * (2**(8));                    { cntl read pending    }
  127.     cmStatusCWPend                = 1 * (2**(9));                    { cntl write pending    }
  128.     cmStatusARPend                = 1 * (2**(10));                { attn read pending    }
  129.     cmStatusAWPend                = 1 * (2**(11));                { attn write pending    }
  130.     cmStatusBreakPend            = 1 * (2**(12));
  131.     cmStatusListenPend            = 1 * (2**(13));
  132.     cmStatusIncomingCallPresent    = 1 * (2**(14));
  133.     cmStatusReserved0            = 1 * (2**(15));
  134.  
  135.     
  136. TYPE
  137.     CMStatFlags = LONGINT;
  138.  
  139.  
  140. CONST
  141.     cmDataIn                    = 0;
  142.     cmDataOut                    = 1;
  143.     cmCntlIn                    = 2;
  144.     cmCntlOut                    = 3;
  145.     cmAttnIn                    = 4;
  146.     cmAttnOut                    = 5;
  147.     cmRsrvIn                    = 6;
  148.     cmRsrvOut                    = 7;
  149.  
  150.     
  151. TYPE
  152.     CMBufFields = INTEGER;
  153.  
  154.     CMBuffers = ARRAY [0..7] OF Ptr;
  155.  
  156.     CMBufferSizes = ARRAY [0..7] OF LONGINT;
  157.  
  158.  
  159. CONST
  160.     cmSearchSevenBit            = 1 * (2**(0));
  161.  
  162.     
  163. TYPE
  164.     CMSearchFlags = INTEGER;
  165.  
  166.  
  167. CONST
  168.     cmFlagsEOM                    = 1 * (2**(0));
  169.  
  170.     
  171. TYPE
  172.     CMFlags = INTEGER;
  173.  
  174.     ConnEnvironRec = RECORD
  175.         version:                INTEGER;
  176.         baudRate:                LONGINT;
  177.         dataBits:                INTEGER;
  178.         channels:                CMChannel;
  179.         swFlowControl:            BOOLEAN;
  180.         hwFlowControl:            BOOLEAN;
  181.         flags:                    CMFlags;
  182.     END;
  183.  
  184.     ConnEnvironRecPtr = ^ConnEnvironRec;
  185.  
  186.     ConnPtr = ^ConnRecord;
  187.     ConnHandle = ^ConnPtr;
  188.  
  189.     ConnectionToolDefProcPtr = ProcPtr;  { FUNCTION ConnectionToolDef(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  190.     ConnectionSearchCallBackProcPtr = ProcPtr;  { PROCEDURE ConnectionSearchCallBack(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT); }
  191.     ConnectionCompletionProcPtr = ProcPtr;  { PROCEDURE ConnectionCompletion(hConn: ConnHandle); }
  192.     ConnectionChooseIdleProcPtr = ProcPtr;  { PROCEDURE ConnectionChooseIdle; }
  193.     ConnectionToolDefUPP = UniversalProcPtr;
  194.     ConnectionSearchCallBackUPP = UniversalProcPtr;
  195.     ConnectionCompletionUPP = UniversalProcPtr;
  196.     ConnectionChooseIdleUPP = UniversalProcPtr;
  197.  
  198.     ConnRecord = RECORD
  199.         procID:                    INTEGER;
  200.         flags:                    CMRecFlags;
  201.         errCode:                CMErr;
  202.         refCon:                    LONGINT;
  203.         userData:                LONGINT;
  204.         defProc:                ConnectionToolDefUPP;
  205.         config:                    Ptr;
  206.         oldConfig:                Ptr;
  207.         asyncEOM:                LONGINT;
  208.         reserved1:                LONGINT;
  209.         reserved2:                LONGINT;
  210.         cmPrivate:                Ptr;
  211.         bufferArray:            CMBuffers;
  212.         bufSizes:                CMBufferSizes;
  213.         mluField:                LONGINT;
  214.         asyncCount:                CMBufferSizes;
  215.     END;
  216.  
  217.  
  218. CONST
  219. { CMIOPB constants and structure }
  220.     cmIOPBQType                    = 10;
  221.     cmIOPBversion                = 0;
  222.  
  223.  
  224. TYPE
  225.     CMIOPB = RECORD
  226.         qLink:                    QElemPtr;
  227.         qType:                    INTEGER;                                { cmIOPBQType }
  228.         hConn:                    ConnHandle;
  229.         theBuffer:                Ptr;
  230.         count:                    LONGINT;
  231.         flags:                    CMFlags;
  232.         userCompletion:            ConnectionCompletionUPP;
  233.         timeout:                LONGINT;
  234.         errCode:                CMErr;
  235.         channel:                CMChannel;
  236.         asyncEOM:                LONGINT;
  237.         reserved1:                LONGINT;
  238.         reserved2:                INTEGER;
  239.         version:                INTEGER;                                { cmIOPBversion }
  240.         refCon:                    LONGINT;                                { for application }
  241.         toolData1:                LONGINT;                                { for tool }
  242.         toolData2:                LONGINT;                                { for tool }
  243.     END;
  244.  
  245.     CMIOPBPtr = ^CMIOPB;
  246.  
  247. CONST
  248.     uppConnectionToolDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  249.     uppConnectionSearchCallBackProcInfo = $00000FC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param); }
  250.     uppConnectionCompletionProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  251.     uppConnectionChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  252.  
  253. FUNCTION CallConnectionToolDefProc(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  254.     {$IFC NOT GENERATINGCFM}
  255.     INLINE $205F, $4E90;
  256.     {$ENDC}
  257.  
  258. PROCEDURE CallConnectionSearchCallBackProc(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  259.     {$IFC NOT GENERATINGCFM}
  260.     INLINE $205F, $4E90;
  261.     {$ENDC}
  262.  
  263. PROCEDURE CallConnectionCompletionProc(hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $205F, $4E90;
  266.     {$ENDC}
  267.  
  268. PROCEDURE CallConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleUPP);
  269.     {$IFC NOT GENERATINGCFM}
  270.     INLINE $205F, $4E90;
  271.     {$ENDC}
  272.  
  273. FUNCTION NewConnectionToolDefProc(userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  274.     {$IFC NOT GENERATINGCFM }
  275.     INLINE $2E9F;
  276.     {$ENDC}
  277.  
  278. FUNCTION NewConnectionSearchCallBackProc(userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  279.     {$IFC NOT GENERATINGCFM }
  280.     INLINE $2E9F;
  281.     {$ENDC}
  282.  
  283. FUNCTION NewConnectionCompletionProc(userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  284.     {$IFC NOT GENERATINGCFM }
  285.     INLINE $2E9F;
  286.     {$ENDC}
  287.  
  288. FUNCTION NewConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  289.     {$IFC NOT GENERATINGCFM }
  290.     INLINE $2E9F;
  291.     {$ENDC}
  292.  
  293. FUNCTION InitCM: CMErr;
  294. FUNCTION CMGetVersion(hConn: ConnHandle): Handle;
  295. FUNCTION CMGetCMVersion: INTEGER;
  296. FUNCTION CMNew(procID: INTEGER; flags: CMRecFlags; VAR desiredSizes: CMBufferSizes; refCon: LONGINT; userData: LONGINT): ConnHandle;
  297. PROCEDURE CMDispose(hConn: ConnHandle);
  298. FUNCTION CMListen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  299. FUNCTION CMAccept(hConn: ConnHandle; accept: BOOLEAN): CMErr;
  300. FUNCTION CMOpen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  301. FUNCTION CMClose(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  302. FUNCTION CMAbort(hConn: ConnHandle): CMErr;
  303. FUNCTION CMStatus(hConn: ConnHandle; VAR sizes: CMBufferSizes; VAR flags: CMStatFlags): CMErr;
  304. PROCEDURE CMIdle(hConn: ConnHandle);
  305. PROCEDURE CMReset(hConn: ConnHandle);
  306. PROCEDURE CMBreak(hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  307. FUNCTION CMRead(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; VAR flags: CMFlags): CMErr;
  308. FUNCTION CMWrite(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  309. FUNCTION CMIOKill(hConn: ConnHandle; which: INTEGER): CMErr;
  310. PROCEDURE CMActivate(hConn: ConnHandle; activate: BOOLEAN);
  311. PROCEDURE CMResume(hConn: ConnHandle; resume: BOOLEAN);
  312. FUNCTION CMMenu(hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  313. FUNCTION CMValidate(hConn: ConnHandle): BOOLEAN;
  314. PROCEDURE CMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  315. FUNCTION CMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  316. FUNCTION CMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  317. PROCEDURE CMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  318. PROCEDURE CMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  319. PROCEDURE CMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  320. PROCEDURE CMSetupPostflight(procID: INTEGER);
  321. FUNCTION CMGetConfig(hConn: ConnHandle): Ptr;
  322. FUNCTION CMSetConfig(hConn: ConnHandle; thePtr: UNIV Ptr): INTEGER;
  323. FUNCTION CMIntlToEnglish(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  324. FUNCTION CMEnglishToIntl(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  325. FUNCTION CMAddSearch(hConn: ConnHandle; theString: ConstStr255Param; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  326. PROCEDURE CMRemoveSearch(hConn: ConnHandle; refnum: LONGINT);
  327. PROCEDURE CMClearSearch(hConn: ConnHandle);
  328. FUNCTION CMGetConnEnvirons(hConn: ConnHandle; VAR theEnvirons: ConnEnvironRec): CMErr;
  329. FUNCTION CMChoose(VAR hConn: ConnHandle; where: Point; idle: ConnectionChooseIdleUPP): INTEGER;
  330. PROCEDURE CMEvent(hConn: ConnHandle; {CONST}VAR theEvent: EventRecord);
  331. PROCEDURE CMGetToolName(procID: INTEGER; VAR name: Str255);
  332. FUNCTION CMGetProcID(name: ConstStr255Param): INTEGER;
  333. PROCEDURE CMSetRefCon(hConn: ConnHandle; refCon: LONGINT);
  334. FUNCTION CMGetRefCon(hConn: ConnHandle): LONGINT;
  335. FUNCTION CMGetUserData(hConn: ConnHandle): LONGINT;
  336. PROCEDURE CMSetUserData(hConn: ConnHandle; userData: LONGINT);
  337. PROCEDURE CMGetErrorString(hConn: ConnHandle; id: INTEGER; VAR errMsg: Str255);
  338. FUNCTION CMNewIOPB(hConn: ConnHandle; VAR theIOPB: CMIOPBPtr): CMErr;
  339. FUNCTION CMDisposeIOPB(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  340. FUNCTION CMPBRead(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  341. FUNCTION CMPBWrite(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  342. FUNCTION CMPBIOKill(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  343.  
  344. {$ALIGN RESET}
  345. {$POP}
  346.  
  347. {$SETC UsingIncludes := ConnectionsIncludes}
  348.  
  349. {$ENDC} {__CONNECTIONS__}
  350.  
  351. {$IFC NOT UsingIncludes}
  352.  END.
  353. {$ENDC}
  354.